package org.jupiter.blog.service.service;

import org.jupiter.blog.api.domain.JupiterComment;
import org.jupiter.blog.api.dto.JupiterCommentDTO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;

public interface JupiterCommentService {

	@Transactional
	void createComment(JupiterCommentDTO dto);

	JupiterCommentDTO getById(String uuid);

	List<JupiterCommentDTO> getByPage(JupiterCommentDTO queryDTO);

	/**
	 * 根据文章ID查询评论列表
	 *
	 * @param articleId
	 * 		文章ID
	 * @return 评论列表
	 */
	List<JupiterCommentDTO> getCommentsByArticleId(String articleId);

	/**
	 * 删除评论
	 *
	 * @param uuid
	 * 		评论ID
	 * @return 是否删除成功
	 */
	boolean deleteComment(String uuid);

	/**
	 * 点赞评论
	 *
	 * @param uuid
	 * 		评论ID
	 * @return 点赞后的点赞数
	 */
	int likeComment(String uuid);
}
